home *** CD-ROM | disk | FTP | other *** search
- { ustr1.pas -- StrMain subunit #1 }
-
- unit UStr1;
-
- interface
-
- {$R ustr1.res}
-
- uses WinTypes, WinProcs, WObjects;
-
- const
-
- id_Menu = 100; { Menu resource ID }
- cm_Advanced = 101;
- cm_Quit = 102;
- cm_Item1 = 201;
- cm_Item2 = 202;
- cm_Item3 = 203;
-
- type
-
- PStrMainWindow = ^StrMainWindow;
- StrMainWindow = object(TWindow)
- AdvancedMenusEnabled: Boolean;
- constructor Init(AParent: PWindowsObject; ATitle: PChar);
- procedure CMAdvanced(var Msg: TMessage);
- virtual cm_First + cm_Advanced;
- procedure CMQuit(var Msg: TMessage);
- virtual cm_First + cm_Quit;
- procedure CMItem1(var Msg: TMessage);
- virtual cm_First + cm_Item1;
- procedure CMItem2(var Msg: TMessage);
- virtual cm_First + cm_Item2;
- procedure CMItem3(var Msg: TMessage);
- virtual cm_First + cm_Item3;
- end;
-
- implementation
-
- uses UStr2;
-
- const
-
- maxMenuStrLen = 25; { Maximum length of a menu string }
- newMenuID = 0; { New top-level menu string table ID }
- newItem1ID = 1; { First new menu item's string table ID }
- newItem2ID = 2; { Second new menu item's string table ID }
- newItem3ID = 3; { Third new menu item's string table ID }
-
-
- { StrMainWindow }
-
- {- Construct StrMainWindow object }
- constructor StrMainWindow.Init(AParent: PWindowsObject; ATitle: PChar);
- begin
- TWindow.Init(AParent, ATitle);
- Attr.Menu := LoadMenu(HInstance, PChar(id_Menu));
- AdvancedMenusEnabled := false
- end;
-
- {- Activate advanced menus }
- procedure StrMainWindow.CMAdvanced(var Msg: TMessage);
- var
- Mh: HMenu; { Menu handle }
- NewMenuStr, NewItem1Str, NewItem2Str, NewItem3Str:
- array[0 .. maxMenuStrLen] of Char;
- begin
- if AdvancedMenusEnabled then Exit;
- Mh := CreatePopupMenu;
- if Mh <> 0 then
- begin
- {- Disable Menu:Advanced command }
- EnableMenuItem(Attr.Menu, cm_Advanced, mf_ByCommand or mf_Grayed);
- {- Load strings from resource }
- LoadString(HInstance, newMenuID, NewMenuStr, maxMenuStrLen);
- LoadString(HInstance, newItem1ID, NewItem1Str, maxMenuStrLen);
- LoadString(HInstance, newItem2ID, NewItem2Str, maxMenuStrLen);
- LoadString(HInstance, newItem3ID, NewItem3Str, maxMenuStrLen);
- {- Create new menu from strings }
- AppendMenu(Attr.Menu, mf_Popup, Mh, NewMenuStr);
- AppendMenu(Mh, mf_String or mf_Enabled, cm_Item1, NewItem1Str);
- AppendMenu(Mh, mf_String or mf_Enabled, cm_Item2, NewItem2Str);
- AppendMenu(Mh, mf_String or mf_Enabled, cm_Item3, NewItem3Str);
- DrawMenuBar(HWindow);
- AdvancedMenusEnabled := true
- end
- end;
-
- {- Exit program }
- procedure StrMainWindow.CMQuit(var Msg: TMessage);
- begin
- CloseWindow
- end;
-
- {- New item commands 1, 2, and 3 }
-
- procedure StrMainWindow.CMItem1(var Msg: TMessage);
- begin
- ShowMessage(HWindow, 0)
- end;
-
- procedure StrMainWindow.CMItem2(var Msg: TMessage);
- begin
- ShowMessage(HWindow, 1)
- end;
-
- procedure StrMainWindow.CMItem3(var Msg: TMessage);
- begin
- ShowMessage(HWindow, 2)
- end;
-
- end.
-
-
- {--------------------------------------------------------------
- Copyright (c) 1991 by Tom Swan. All rights reserved.
- Revision 1.00 Date: 4/16/1991
- ---------------------------------------------------------------}
-